#include <iostream>
#include <string>
#include <vector>

size_t split(const std::string& str,const std::string& sep,std::vector<std::string>& result)
{
    size_t pos = 0 , idx = 0;
    while(idx < str.size())
    {
        pos = str.find(sep,idx);
        if(pos == std::string::npos)
        {
            result.emplace_back(str.substr(idx));
            break;
        }
        if(pos == idx)
        {
            ++idx;
            continue;
        }
        result.emplace_back(str.substr(idx,pos - idx));
        idx = pos + 1;
    }
    return result.size();
}

// class StrHelper
// {
// public:
//     static size_t split(const std::string& str,const std::string& sep,std::vector<std::string>& result)
//     {
//         size_t pos = 0 , idx = 0;
//         while(idx < str.size())
//         {
//             pos = str.find(sep,idx);
//             if(pos == std::string::npos)
//             {
//                 result.emplace_back(str.substr(idx));
//                 break;
//             }
//             if(pos == idx)
//             {
//                 ++idx;
//                 continue;
//             }
//             result.emplace_back(str.substr(idx,pos - idx));
//             idx = pos + 1;
//         }
//         return result.size();
//     }
// };

int main()
{
    //std::string s("news....music.#.pop");
    std::vector<std::string> ret;
    split(".....news....music.#.pop.......",".",ret);
    for(auto& e : ret)
    {
        std::cout << e << std::endl;
    }
    return 0;
}